﻿using System;

namespace Entities
{
    public class Service : IService
    {
        /// <summary>
        /// Gets or sets the service id.
        /// </summary>
        /// <value>
        /// The service id.
        /// </value>
        public Guid ServiceId { get; set; }
        /// <summary>
        /// Gets or sets the contact id.
        /// </summary>
        /// <value>
        /// The contact id.
        /// </value>
        public Guid ContactId { get; set; }
        /// <summary>
        /// Gets or sets the name of the service.
        /// </summary>
        /// <value>
        /// The name of the service.
        /// </value>
        public string ServiceName { get; set; }
        /// <summary>
        /// Gets or sets the short description.
        /// </summary>
        /// <value>
        /// The short description.
        /// </value>
        public string ShortDescription { get; set; }
        /// <summary>
        /// Gets or sets the type of the sub.
        /// </summary>
        /// <value>
        /// The type of the sub.
        /// </value>
        public int SubType { get; set; }
        /// <summary>
        /// Gets or sets the client description.
        /// </summary>
        /// <value>
        /// The client description.
        /// </value>
        public string ClientDescription { get; set; }
        /// <summary>
        /// Gets or sets the service attendance.
        /// </summary>
        /// <value>
        /// The service attendance.
        /// </value>
        public string ServiceAttendance { get; set; }
        /// <summary>
        /// Gets or sets the start expected.
        /// </summary>
        /// <value>
        /// The start expected.
        /// </value>
        public string StartExpected { get; set; }
        /// <summary>
        /// Gets or sets the start date.
        /// </summary>
        /// <value>
        /// The start date.
        /// </value>
        public string StartDate { get; set; }
        /// <summary>
        /// Gets or sets the end date.
        /// </summary>
        /// <value>
        /// The end date.
        /// </value>
        public string EndDate { get; set; }
        /// <summary>
        /// Gets or sets the extendable.
        /// </summary>
        /// <value>
        /// The extendable.
        /// </value>
        public string Extendable { get; set; }
        /// <summary>
        /// Gets or sets a value indicating whether [service active].
        /// </summary>
        /// <value>
        ///   <c>true</c> if [service active]; otherwise, <c>false</c>.
        /// </value>
        public bool ServiceActive { get; set; }
        /// <summary>
        /// Gets or sets the full description.
        /// </summary>
        /// <value>
        /// The full description.
        /// </value>
        public string FullDescription { get; set; }
        /// <summary>
        /// Gets or sets the dept code.
        /// </summary>
        /// <value>
        /// The dept code.
        /// </value>
        public string DeptCode { get; set; }
        /// <summary>
        /// Gets or sets the type of the service.
        /// </summary>
        /// <value>
        /// The type of the service.
        /// </value>
        public int ServiceType { get; set; }
        /// <summary>
        /// Gets or sets the description delivery.
        /// </summary>
        /// <value>
        /// The description delivery.
        /// </value>
        public string DescriptionDelivery { get; set; }
        /// <summary>
        /// Gets or sets a value indicating whether [staged payment].
        /// </summary>
        /// <value>
        ///   <c>true</c> if [staged payment]; otherwise, <c>false</c>.
        /// </value>
        public bool StagedPayment { get; set; }
        /// <summary>
        /// Gets or sets the process method.
        /// </summary>
        /// <value>
        /// The process method.
        /// </value>
        public string ProcessMethod { get; set; }
        /// <summary>
        /// Gets or sets the time limited.
        /// </summary>
        /// <value>
        /// The time limited.
        /// </value>
        public string TimeLimited { get; set; }
        /// <summary>
        /// Gets or sets the benefits criterion.
        /// </summary>
        /// <value>
        /// The benefits criterion.
        /// </value>
        public string BenefitsCriterion { get; set; }
        /// <summary>
        /// Gets or sets the barriers criterion.
        /// </summary>
        /// <value>
        /// The barriers criterion.
        /// </value>
        public string BarriersCriterion { get; set; }
        /// <summary>
        /// Gets or sets the ethnicity criterion.
        /// </summary>
        /// <value>
        /// The ethnicity criterion.
        /// </value>
        public string EthnicityCriterion { get; set; }
        /// <summary>
        /// Gets or sets the disability.
        /// </summary>
        /// <value>
        /// The disability.
        /// </value>
        public string Disability { get; set; }
        /// <summary>
        /// Gets or sets the personal circumstances.
        /// </summary>
        /// <value>
        /// The personal circumstances.
        /// </value>
        public string PersonalCircumstances { get; set; }
        /// <summary>
        /// Gets or sets the other service partici pation criterion.
        /// </summary>
        /// <value>
        /// The other service partici pation criterion.
        /// </value>
        public string OtherServiceParticiPationCriterion { get; set; }
        /// <summary>
        /// Gets or sets the client support process.
        /// </summary>
        /// <value>
        /// The client support process.
        /// </value>
        public string ClientSupportProcess { get; set; }
        /// <summary>
        /// Gets or sets the client outcome.
        /// </summary>
        /// <value>
        /// The client outcome.
        /// </value>
        public string ClientOutcome { get; set; }
        /// <summary>
        /// Gets or sets the target client.
        /// </summary>
        /// <value>
        /// The target client.
        /// </value>
        public string TargetClient { get; set; }
        /// <summary>
        /// Gets or sets the referral sources.
        /// </summary>
        /// <value>
        /// The referral sources.
        /// </value>
        public string ReferralSources { get; set; }
        /// <summary>
        /// Gets or sets the support centres.
        /// </summary>
        /// <value>
        /// The support centres.
        /// </value>
        public string SupportCentres { get; set; }
        /// <summary>
        /// Gets or sets the other service id.
        /// </summary>
        /// <value>
        /// The other service id.
        /// </value>
        public string OtherServiceId { get; set; }
        /// <summary>
        /// Gets or sets the programme id.
        /// </summary>
        /// <value>
        /// The programme id.
        /// </value>
        public Guid ProgrammeId { get; set; }
        /// <summary>
        /// Gets or sets the contract outcome.
        /// </summary>
        /// <value>
        /// The contract outcome.
        /// </value>
        public string ContractOutcome { get; set; }
        /// <summary>
        /// Gets or sets the contract obligation.
        /// </summary>
        /// <value>
        /// The contract obligation.
        /// </value>
        public string ContractObligation { get; set; }
        /// <summary>
        /// Gets or sets the participation.
        /// </summary>
        /// <value>
        /// The participation.
        /// </value>
        public string Participation { get; set; }
        /// <summary>
        /// Gets or sets the contract code.
        /// </summary>
        /// <value>
        /// The contract code.
        /// </value>
        public string ContractCode { get; set; }
        /// <summary>
        /// Gets or sets the contract value.
        /// </summary>
        /// <value>
        /// The contract value.
        /// </value>
        public string ContractValue { get; set; }
        /// <summary>
        /// Gets or sets the funding source.
        /// </summary>
        /// <value>
        /// The funding source.
        /// </value>
        public string FundingSource { get; set; }
        /// <summary>
        /// Gets or sets the funding contact id.
        /// </summary>
        /// <value>
        /// The funding contact id.
        /// </value>
        public Guid FundingContactId { get; set; }
        /// <summary>
        /// Gets or sets the funding amount.
        /// </summary>
        /// <value>
        /// The funding amount.
        /// </value>
        public decimal FundingAmount { get; set; }
        /// <summary>
        /// Gets or sets the funding start.
        /// </summary>
        /// <value>
        /// The funding start.
        /// </value>
        public string FundingStart { get; set; }
        /// <summary>
        /// Gets or sets the funding end.
        /// </summary>
        /// <value>
        /// The funding end.
        /// </value>
        public string FundingEnd { get; set; }
        /// <summary>
        /// Gets or sets the funding needs.
        /// </summary>
        /// <value>
        /// The funding needs.
        /// </value>
        public decimal FundingNeeds { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether [funding continuation needed].
        /// </summary>
        /// <value>
        /// <c>true</c> if [funding continuation needed]; otherwise, <c>false</c>.
        /// </value>
        public bool FundingContinuationNeeded { get; set; }
        /// <summary>
        /// Gets or sets the funding coutinuation amount.
        /// </summary>
        /// <value>
        /// The funding coutinuation amount.
        /// </value>
        public decimal FundingCoutinuationAmount { get; set; }
        /// <summary>
        /// Gets or sets the funding continuation details.
        /// </summary>
        /// <value>
        /// The funding continuation details.
        /// </value>
        public string FundingContinuationDetails { get; set; }
        /// <summary>
        /// Gets or sets the fundraising for text.
        /// </summary>
        /// <value>
        /// The fundraising for text.
        /// </value>
        public string FundraisingForText { get; set; }
        /// <summary>
        /// Gets or sets the fundraising why.
        /// </summary>
        /// <value>
        /// The fundraising why.
        /// </value>
        public string FundraisingWhy { get; set; }
        /// <summary>
        /// Gets or sets the fundraising needs.
        /// </summary>
        /// <value>
        /// The fundraising needs.
        /// </value>
        public decimal FundraisingNeeds { get; set; }
        /// <summary>
        /// Gets or sets the fundraising required by.
        /// </summary>
        /// <value>
        /// The fundraising required by.
        /// </value>
        public string FundraisingRequiredBy { get; set; }
        /// <summary>
        /// Gets or sets a value indicating whether [fundraising complete].
        /// </summary>
        /// <value>
        ///   <c>true</c> if [fundraising complete]; otherwise, <c>false</c>.
        /// </value>
        public bool FundraisingComplete { get; set; }
        /// <summary>
        /// Gets or sets the fundraising complete date.
        /// </summary>
        /// <value>
        /// The fundraising complete date.
        /// </value>
        public string FundraisingCompleteDate { get; set; }
        /// <summary>
        /// Gets or sets a value indicating whether [fundraising donor anonym].
        /// </summary>
        /// <value>
        /// <c>true</c> if [fundraising donor anonym]; otherwise, <c>false</c>.
        /// </value>
        public bool FundraisingDonorAnonym { get; set; }
        /// <summary>
        /// Gets or sets the fundraising donor amount.
        /// </summary>
        /// <value>
        /// The fundraising donor amount.
        /// </value>
        public decimal FundraisingDonorAmount { get; set; }
        /// <summary>
        /// Gets or sets the fundraising donation date.
        /// </summary>
        /// <value>
        /// The fundraising donation date.
        /// </value>
        public string FundraisingDonationDate { get; set; }
        /// <summary>
        /// Gets or sets a value indicating whether [fundraising donation incremental].
        /// </summary>
        /// <value>
        /// <c>true</c> if [fundraising donation incremental]; otherwise, <c>false</c>.
        /// </value>
        public bool FundraisingDonationIncremental { get; set; }
        /// <summary>
        /// Gets or sets the client journey.
        /// </summary>
        /// <value>
        /// The client journey.
        /// </value>
        public string ClientJourney { get; set; }
        /// <summary>
        /// Gets or sets the accreditations.
        /// </summary>
        /// <value>
        /// The accreditations.
        /// </value>
        public string Accreditations { get; set; }
        /// <summary>
        /// Gets or sets the intervention id.
        /// </summary>
        /// <value>
        /// The intervention id.
        /// </value>
        public string InterventionId { get; set; }
    }
}
